home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / var / lib / dpkg / info / ghostscript-cups.postinst < prev    next >
Encoding:
Text File  |  2012-12-27  |  2.0 KB  |  58 lines

  1. #! /bin/bash
  2.  
  3. set -e
  4.  
  5. case "$1" in
  6.     configure)
  7.     # Do the following only if CUPS is running and the needed CUPS tools
  8.     # are available
  9.     if which lpstat > /dev/null 2>&1 \
  10.       && which lpinfo > /dev/null 2>&1 \
  11.       && which lpadmin > /dev/null 2>&1 \
  12.       && lpstat -r > /dev/null 2>&1; then
  13.         # Update the PPD files of all already installed print queues
  14.         driverregexp='lsb/usr/ghostscript/'
  15.         gennicknameregexp=''
  16.         [ ! -z "$gennicknameregexp" ] \
  17.           && gennicknameregexp="; $gennicknameregexp"
  18.         gennicknameregexp='s/\s*\(recommended\)//'"$gennicknameregexp"
  19.         tempfiles=
  20.         trap 'rm -f $tempfiles; exit 0' 0 1 2 13 15
  21.         tmpfile1=`mktemp -t updateppds.XXXXXX`
  22.         tempfiles="$tempfiles $tmpfile1"
  23.         lpinfo -m | grep -E $driverregexp > $tmpfile1
  24.         cd /etc/cups/ppd
  25.         for ppd in *.ppd; do
  26.             [ -r "$ppd" ] || continue
  27.             queue=${ppd%.ppd}
  28.             lpstat -p "$queue" >/dev/null 2>&1 || continue
  29.             nickname=`grep '\*NickName:' "$ppd" | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
  30.             lang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  31.             ppdfound="0"
  32.             englishppduri=""
  33.             tmpfile2=`mktemp -t updateppds.XXXXXX`
  34.             tempfiles="$tempfiles $tmpfile2"
  35.             cat $tmpfile1 | perl -p -e "$gennicknameregexp" | grep -E '^\S+\s+.*'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2
  36.             while read newppduri; do
  37.                 [ "$ppdfound" = "0" ] && lpadmin -p "$queue" -m $newppduri 2>/dev/null || continue
  38.                 newlang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  39.                 [ "$newlang" = "$lang" ] && ppdfound="1"
  40.                 [ "$newlang" = "english" ] && englishppduri="$newppduri"
  41.             done < $tmpfile2
  42.             [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -p "$queue" -m $englishppduri 2>/dev/null && ppdfound="1"
  43.             [ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2
  44.         done
  45.     fi
  46.     ;;
  47.     abort-upgrade|abort-remove|abort-deconfigure)
  48.     ;;
  49.     *)
  50.     echo "postinst called with unknown argument \`$1'" >&2
  51.     exit 1
  52.     ;;
  53. esac
  54.  
  55.  
  56.  
  57. exit 0
  58.